#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>
//
//int main()
//{
//    int n = 0;
//    int arr[40] = { 0 };
//    scanf("%d", &n);
//
//    int i = 0;
//    while (n)
//    {
//        arr[i] = n % 6;
//        i++;
//        n = n / 6;
//    }
//    for (i--; i >= 0; i--)
//    {
//        printf("%d", arr[i]);
//    }
//    return 0;
//}
//
//#include <stdio.h>
//
//int main()
//{
//    int n = 0;
//    long long sum = 0;
//    scanf("%d", &n);
//    int i = 0;
//    for (i = 1; i <= n; i++)
//    {
//        sum += i;
//    }
//    printf("%lld\n", sum);
//
//    return 0;
//}
//
//#include <stdio.h>
//
//int main()
//{
//    long long n = 0;
//    long long sum = 0;
//    scanf("%lld", &n);
//    int i = 0;
//
//    sum = ((1 + n) * n) / 2;
//    printf("%lld\n", sum);
//
//    return 0;
//}
//
//#include <stdio.h>
//
//int main()
//{
//    int h = 0;
//    int m = 0;
//    int k = 0;
//    //1:30 40
//    scanf("%d:%d %d", &h, &m, &k);
//    h = ((m + k) / 60 + h) % 24;
//    m = ((m + k) % 60) % 60;
//    printf("%02d:%02d\n", h, m);
//
//    return 0;
//}

#include <stdio.h>

//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    printf("%d\n", (n / 12) * 4 + 2);
//    return 0;
//}


#include <stdio.h>

//int main()
//{
//    long long n = 0;
//    long long m = 0;
//    scanf("%lld %lld", &n, &m);
//
//    long long max = n > m ? m : n;//假设n和m的较小值为最大公约数
//    long long min = n > m ? n : m;//假设n和m的较大值为最小公倍数
//
//    while (1)
//    {
//        if (n % max == 0 &&  m % max == 0)
//        {
//            break;
//        }
//        max--;
//    }
//    while (1)
//    {
//        if (min % n == 0 && min % m == 0)
//        {
//            break;
//        }
//
//        min++;
//    }
//
//    printf("%lld\n", min + max);
//    return 0;
//}

#include <stdio.h>

//int main()
//{
//    long long n = 0;
//    long long m = 0;
//    scanf("%lld %lld", &n, &m);
//
//    long long n2 = n;
//    long long m2 = m;
//
//    long long tmp = 0;
//    long long max = 0;
//    long long min = 0;
//
//    while (tmp = n % m)
//    {
//        n = m;
//        m = tmp;
//    }
//    max = m;
//    //最小公倍数 = n*m/max
//    min = n2 * m2 / max;
//
//    printf("%lld\n", min + max);
//    return 0;
//}

#include <stdio.h>

//int main()
//{
//    int n = 0;
//    int i = 0;
//    int sum = 0;
//
//    scanf("%d", &n);
//    while (n)
//    {
//        int m = n % 10;
//        if (m % 2 == 1)
//            m = 1;
//        else
//            m = 0;
//        sum += m * pow(10, i);
//        i++;
//        n /= 10;
//
//    }
//    printf("%d\n", sum);
//
//    return 0;
//}


#include <stdio.h>
//
//int f(int n)
//{
//    if (n <= 2)
//        return n;
//    else
//        return f(n - 1) + f(n - 2);
//}
//
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    int ret = f(n);
//    printf("%d\n", ret);
//    return 0;
//}

#include <stdio.h>

//int main()
//{
//    int n = 0;
//    int arr[1000001] = { 0 };
//    scanf("%d", &n);
//    int tmp = 0;
//    int i = 0;
//    for (i = 0; i < n; i++)
//    {
//        scanf("%d", &tmp);
//        arr[tmp] = tmp;
//    }
//
//    for (i = 0; i < n; i++)
//    {
//        if (arr[i] != 0)
//        {
//            printf("%d ", arr[i]);
//        }
//
//    }
//
//    return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//    char arr[8000] = { 0 };//CCHNCHN
//    scanf("%s", arr);
//
//    //统计子串CHN的个数
//    long long c = 0;
//    long long ch = 0;
//    long long chn = 0;
//
//    char* p = arr;
//    while (*p)
//    {
//        if (*p == 'C')
//            c++;
//        else if (*p == 'H')
//            ch += c;
//        else if (*p == 'N')
//            chn += ch;
//        p++;
//    }
//    printf("%lld\n", chn);
//
//    return 0;
//}
//
//#include <stdio.h>
//
//int main()
//{
//    int arr[4] = { 0 };
//    int i = 0;
//    for (i = 0; i < 4; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//    //假设arr[0]就是我们的最大值
//    int max = arr[0];
//    for (i = 1; i < 4; i++)
//    {
//        if (arr[i] > max)
//        {
//            max = arr[i];
//        }
//    }
//
//    printf("%d\n", max);
//
//    return 0;
//}
//
//#include <stdio.h>
//
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    if (n >= 90 && n <= 100)
//        printf("A\n");
//    else if (n >= 80 && n <= 89)
//        printf("B\n");
//    else if (n >= 70 && n <= 79)
//        printf("C\n");
//    else if (n >= 60 && n <= 69)
//        printf("D\n");
//    else if (n >= 0 && n <= 59)
//        printf("E\n");
//    else
//        printf("F\n");
//    return 0;
//}

#include <stdio.h>

int max3(int a, int b, int c)
{
    int max = a > b ? a : b;
    max = max > c ? max : c;
    return max;
}

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;

    scanf("%d %d %d", &a, &b, &c);

    printf("%.2f\n", (float)max3(a + b, b, c) / (max3(a, b + c, c) + max3(a, b, b + c)));
    return 0;

}